// 请实现一个函数，将一个字符串中的每个空格替换成"%20"。
// 例如，当字符串为We Are Happy,则经过替换之后的字符串为We%20Are%20Happy。
#include <string>
using namespace std;
class Solution
{
public:
    const string &reConstruct(string &s)
    {
        int count = 0;
        for (const auto &ch : s)
        {
            if (' ' == ch)
                count++;
        }
        int new_length = s.size() + 2 * count;
        string::reverse_iterator rit = s.rbegin();
        s.reserve(new_length + 1);
        int p_new = new_length - 1;
        for (rit; rit != s.rend(); rit++)
        {
            if (' ' == *rit)
            {
                s[p_new--] = '0';
                s[p_new--] = '2';
                s[p_new--] = '%';
            }
            else
                s[p_new--] = *rit;
        }
        return s;
    }
};